User location aware smart event handling

ABSTRACT

Techniques are discussed herein for providing notification messages to a user are provided. An example method of sending an alert message according to the disclosure includes receiving a notification message for a user, determining a location of the user, determining one or more notification devices based the location of the user, generating the alert message based on one or more notification preferences associated with the user and the one or more notification devices, and sending the alert message to at least one of the one or more notification devices based on the notification preferences.

BACKGROUND

Devices, both mobile and static, are increasingly equipped to wirelesslycommunicate with other devices and/or to take measurements from whichtheir locations may be determined and/or locations may be determined ofother devices from which one or more signals are received. An electronicnotification process may be used to send notifications from one deviceto another device based on the locations of the devices. Locations ofdevices may be determined by the devices themselves, or by anotherdevice that is provided with the measurements, or by another device thattakes the measurements. For example, a device may determine its ownlocation based on satellite positioning system (SPS) signals, cellularnetwork signals, and/or Wi-Fi signals, etc. that the devices receive.The location of a user may often be associated with the location of amobile or static device, such as a mobile phone or a static workstation. Notifications/alerts may be sent to a user based on anassociation with a mobile device. Associating a single user with adevice can be problematic when devices may move or be shared by multipleusers. For example, users may roam throughout a home with or without amobile device and thus their location may not correspond to the locationof a mobile device. For instance, a child may take their parent's mobiledevice to another room (i.e., without their parent) to play a game orview on-line content. In this example, the parent would be unaware ofany notifications sent to the mobile device while the child is inpossession of the mobile device.

To improve the efficiency of communications with a user, the location ofthe user should be considered in an electronic notification process.Further, the electronic notification process should also consider themobility of some devices and the locations of mobile devices relative tothe location of the user.

SUMMARY

An example of a method of sending an alert message according to thedisclosure includes receiving, at a communication device, a notificationmessage for a user, determining, by the communication device, a locationof the user, determining, by the communication device, one or morenotification devices based the location of the user, generating, by thecommunication device, the alert message based on one or morenotification preferences associated with the user and the one or morenotification devices, and sending, by the communication device, thealert message to at least one of the one or more notification devicesbased on the notification preferences.

Implementations of such a method may include one or more of thefollowing features. The alert message may include an indication of thenotification preferences. The communication device may be a centralcontroller. Generating the alert message may include populating one ormore data frames associated with a wireless messaging protocol.Determining the location of the user may include providing a useridentification associated with the user to the central controller andreceiving an indication of the location of the user from the centralcontroller. At least one of the one or more notification devices may beconfigured to receive the alert message from a second notificationdevice. The alert message may be a pending-notification messageincluding information configured to enable the at least one of the oneor more notification devices to display an icon associated with theuser. Determining the location of the user may include executing a usersearch function. Determining the location of the user may includeobtaining an image with a camera on at least one of the one or morenotification devices.

An example of a device for providing an alert message to a useraccording to the disclosure includes at least one processor configuredto receive a notification for the user, determine a location of theuser, determine one or more notification devices based on the locationof the user, determine one or more notification preferences associatedwith the user and the one or more notification devices, generate thealert message for at least one of the one or more notification devicesbased on the notification preferences, and a transceiver,communicatively coupled to the processor, configured to transmit thealert message wirelessly from the device.

Implementations of such a device may include one or more of thefollowing features. The notification preferences may include a privacypreference indicating conditions in which a receiving notificationdevice that receives the alert message may present the alert message.The notification preferences may include a display area preferenceindicating an area on a display in which a receiving notification devicethat receives the alert message will present the alert message. Thenotification preferences may include a volume level preferenceindicating a volume in which a receiving notification device thatreceives the alert message will present the alert message. The alertmessage may be a pending-notification message including informationconfigured to enable the at least one of the one or more notificationdevices to display an icon associated with the user. The processor maybe configured to receive information from at least one presence sensorand determine the location of the user based at least in part on theinformation received from the at least one presence sensor. Theprocessor may be configured to receive an indication of the location ofthe user from the one or more notification devices.

An example of an apparatus for sending an alert message according to thedisclosure includes means for receiving a notification message for auser, means for determining a location of the user, means fordetermining one or more notification devices based the location of theuser, means for generating the alert message based on one or morenotification preferences associated with the user and the one or morenotification devices, and means for sending the alert message to atleast one of the one or more notification devices based on thenotification preferences.

An example of a non-transitory processor-readable storage mediumcomprising processor-readable instructions configured to cause one ormore processors to send an alert message according to the disclosureincludes code for receiving a notification message for a user, code fordetermining a location of the user, code for determining one or morenotification devices based the location of the user, code for generatingthe alert message based on one or more notification preferencesassociated with the user and the one or more notification devices, andcode for sending the alert message to at least one of the one or morenotification devices based on the notification preferences.

Items and/or techniques described herein may provide one or more of thefollowing capabilities, as well as other capabilities not mentioned.Electronic notifications/alerts may be provided based on the location ofa user. The location of the user may be established based on sensor anddevice information. The locations of users and devices may be storedwith chronological information. Notifications may be provided to one ormore devices that are proximate to the current location of the user. Thenotifications may be provided based on user preferences and/orattributes of the devices. User preferences and device attributes may bestored on a control system. A single device may be configured to providemultiple notifications based on the preferences of multiple users.Emergency notifications may be provided to multiple devices regardlessof the user location. The location of a user may be based on historicaldata. Other capabilities may be provided and not every implementationaccording to the disclosure must provide any, let alone all, of thecapabilities discussed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified view of a communication system.

FIG. 2 is a simplified top view of an indoor portion of an examplecommunication system.

FIG. 3 is a block diagram of components of communication device shown inFIG. 2.

FIG. 4 is an example use case of a mobile user in a householdcommunication system.

FIG. 5 is an example use case of a mobile device with multiple users inthe household communication system.

FIG. 6 is an example use case of a static device with multiple users inthe household communication system.

FIGS. 7A and 7B are examples of a device with a multiuser notificationdisplay.

FIG. 8 is a block diagram of components of a central controller shown inFIGS. 2-6.

FIG. 9 is an example message flow for user location tracking.

FIGS. 10A-10C are example data tables of device and user data historymaintained by the central controller shown in FIG. 8.

FIG. 11 is a block flow diagram of a method of sending an alert message.

FIG. 12 is a block flow diagram of method of sending an alert message toa notification device.

FIG. 13A is a block flow diagram of a method of sending an alert messagewith a notification preference.

FIG. 13B is a block flow diagram of a method of receiving an alertmessage with a notification preference.

DETAILED DESCRIPTION

Techniques are discussed herein for providing notification messages to auser. An increasing number of household smart devices are becomingavailable to the consumer market. These smart devices are capable ofcommunicating with a home network to store and exchange data.Historically, an individual in one area of a house may have no idea ofwhat is happening in other areas of the house. For example, if theindividual is operating an appliance in one area of the home (e.g., awashing machine), they may be oblivious to the status of an applianceoperating in another area of the home that requires their immediateattention (e.g., the stove). In another example, if the individualleaves a smart device (e.g., smartphone, tablet) in one area, they maynot hear a notification tone from the smart device (e.g., incomingmessage, email, alerts). Location determination of the individual in thehome enables the individual to take suitable actions to ensure thatimportant calls/notifications/alerts are not missed. For example, adevice that needs any immediate attention may be able to communicatewith the individual even when they are not in the vicinity of thatdevice.

A smart home may include a network of devices capable of exchanginginformation with other devices on the network. The smart devices mayalso be used to determine a user's location within the home. Forexample, a voice identification system may be used to identifyindividual users and associate each user to a device or physicallocation. Other presence sensors such as cameras and motions detectorsmay be used to determine the location of the user. Other smart deviceson the network may require a user ID and thus may be used to infer theuser's location. A network controller can maintain a data table withuser location information. The user location information can becorrelated to a proximate network device and notifications for aspecific user may be directed to a proximate device. In an example, ifthe user is watching TV and does not have his smartphone with him, theycould receive alerts about a security alarm at the front door via theTV. In another example, if system detects that the user is some distanceaway from their smartphone, the smartphone may increase the notificationvolume automatically.

Referring to FIG. 1, a communication system 10 includes devices 12, 14,16, 18, 20, 22, an access point 24, a base station 26, a network 28, aserver 30, a presence sensor 32, and an audio transducer 34. The devices12, 14, 16, 18, the access point 24, the presence sensor 32, and theaudio transducer 34 are disposed inside a structure 36 (e.g., abuilding). The system 10 is a communication system in that components ofthe system 10 can communicate with one another directly or indirectly,e.g., via the network 28 and/or the access point 24 and/or the basestation 26 (or other access points and/or other bases stations notshown). The system 10 is a communication system in that at least some ofthe components of the system 10 can communicate with one anotherwirelessly. For example, the base station 26 and the device 20 maycommunicate wirelessly using signals according to one or more protocolssuch as LTE, GSM, CDMA, or OFDM. The single access point 24 and thesingle base station 26 are examples only, and other quantities of accesspoints and/or base stations may be used. Also, the types of the devices12, 14, 16, 18, 20, 22 (e.g., an appliance, a smart phone, a tabletcomputer, a laptop computer, and a car) are examples and other types ofdevices may be used, whether currently existing or developed in thefuture. The term “base station” does not limit the base station 26 toany particular form, protocol, etc. For example, any of the base station26 (and/or other base stations not shown) may be referred to as a basetransceiver station (BTS), an access node (AN), a Node B, an evolvedNode B (eNB), etc. Further, the device 22 is a car and while the primaryfunction of a car is not as a communication device, the car willcomprise a communication device as a part of the car, and for simplicityof the disclosure the car is considered as one type of communicationdevice herein.

The system 10 comprises an Internet of Things (IoT) network in thisexample, with the devices 12, 14, 16, 18, 20, 22 configured tocommunicate with each other, particularly through one or moreshort-range wireless communication techniques. The system 10 being anIoT network is, however, an example and not required. Examples ofshort-range wireless communication techniques include BLUETOOTHcommunications, BLUETOOTH Low-Energy communications, and Wi-Ficommunications. The devices 12, 14, 16, 18, 20, 22 may broadcastinformation, and/or may relay information from one of the devices 12,14, 16, 18, 20, 22 to another or to another device such as the accesspoint 24 and/or the base station 26. One or more of the devices 12, 14,16, 18, 20, 22 may include multiple types of radios, e.g., a BLUETOOTHradio, a Wi-Fi radio, a cellular radio (e.g., LTE, CDMA, 3G, 4G, etc.),etc. such that information may be received using one radio andtransmitted using a different radio. Further, one or more of the devices12, 14, 16, 18, 20, 22 may be configured to determine range to anotherof the devices 12, 14, 16, 18, 20, 22 (e.g., using round-trip time(RTT), or observed time difference of arrival (OTDOA), or receivedsignal strength indications (RSSI), or one or more other techniques, ora combination of one or more of any of these techniques) and/or todetermine angle of arrival (AOA) of a signal from another of the devices12, 14, 16, 18, 20, 22 and/or from one or more other devices such as theaccess point 24 and/or the base station 26.

Referring to FIG. 2, and indoor portion of the system 10 inside of thestructure 36 includes wireless communication devices 40, 41, 42, 43, 44,45, 47, presence sensors 50, 52, audio transducers 54, 56, a centralcontroller 60, and the access point 24 (here a Wi-Fi router). In thisexample, the devices 40-47 include a dishwasher 40, an oven 41, atoaster 42, and a refrigerator 43 disposed in a kitchen 64, a tablet 44,a smart phone 45, and a television disposed in a family room 66, and acar 46 and a garage door opener 47 disposed in a garage 68. Thesedevices 40-47 are configured to communicate with each other if withincommunication range of each other, and to communicate with the presencesensors 50, 52 and the central controller 60. Using the communicationcapabilities between each other, information regarding the devices 40-47may be sent to each other, relayed to other devices, or even relayed tothe central controller 60. Further, communications from the centralcontroller 60 may be received by, or forwarded by, the devices 40-47.Further still, the central controller 60 may be a standalone device asshown in FIG. 2 or may be incorporated into any of the devices 40-47.The system 10, in this example, provides an IoT network that cangenerate, send, receive, relay or forward, various information (e.g.,attributes, attribute tables, information relating to attributes, signalmeasurements, location indications, etc.) to facilitate functionalitydescribed herein. The devices 40-47 are examples only, and other typesof devices, as well as other quantities of devices, may be used.

The presence sensors 50, 52 facilitate detection of the presence ofdevices and/or users. The presence sensors 50, 52 may detect thepresence of devices and/or persons in any of a variety of ways. Forexample, either or both of the presence sensors 50, 52 may comprise amovement sensor, e.g., that sends signals, measures their reflections,and compares present reflections with previous reflections. The signalsmay be visible or non-visible (e.g., infrared) light signals and audibleor non-audible (e.g., ultrasound) sound signals. Either or both of thepresence sensors 50, 52 may comprise a heat sensor, e.g., including aninfrared sensor. Either or both of the presence sensors 50, 52 may becommunicatively coupled (e.g., hard-wired or wirelessly in communicationwith) one or more of the devices 40-47 and/or the central controller 60.The presence sensors 50, 52 are configured to report the detection ofpresence (possibly only if new, or possibly new and ongoing) of arelevant object such as a person.

The audio transducers 54, 56 facilitate the reception and provision ofcommands from users to the central controller 60 or other appropriatedevice. The audio transducers are preferably communicatively coupled(e.g., hard-wired or in wireless communication with) the centralcontroller 60 and are configured to receive verbal commands, convertthese commands to electrical signals, and send the signals to thecentral controller 60 or other appropriate device. The audio transducers54, 56 may send the signals to the central controller 60 or otherappropriate device directly or indirectly (e.g., through one or moreintermediate devices that relay the signals) such as one or more of thedevices 40-47.

Referring to FIG. 3, with further reference to FIG. 1, an examplecommunication device 70 comprises a computer system including aprocessor 80, a memory 82 including software (SW) 84, an optional userinterface 86, and a transceiver 88. The processor 80 is preferably anintelligent hardware device, for example a central processing unit (CPU)such as those made or designed by QUALCOMM®, ARM®, Intel® Corporation,or AMD®, a microcontroller, an application specific integrated circuit(ASIC), etc. The processor 80 may comprise multiple separate physicalentities that can be distributed in the device 70. The processor 80 maybe at least one processor or multiple processors (including multicoreprocessors). The memory 82 may include random access memory (RAM) and/orread-only memory (ROM). The memory 82 is a non-transitory,processor-readable storage medium that stores the software 84 which isprocessor-readable, processor-executable software code containinginstructions that are configured to, when performed, cause the processor80 to perform various functions described herein. The description mayrefer only to the processor 80 or the device 70 performing thefunctions, but this includes other implementations such as where theprocessor 80 executes software and/or firmware. The software 84 may notbe directly executable by the processor 80 and instead may be configuredto, for example when compiled and executed, cause the processor 80 toperform the functions. Whether needing compiling or not, the software 84contains the instructions to cause the processor 80 to perform thefunctions. The processor 80 is communicatively coupled to the memory 82.The processor 80 in combination with the memory 82, the user interface86 (as appropriate), and/or the transceiver 88 provide means forperforming functions as described herein, for example, means forgenerating communications with device attributes and causing thetransceiver 88 to transmit these communications wirelessly from thedevice 70, means for receiving communications from other devices, meansfor transmitting communications to other devices including relaying atleast portions of received communications (e.g., forwarding/sendingportions of received communications), and means for determining variousinformation such as position of the device 70, relative distance fromthe device 70 to another device, angle of arrival of a signal at thedevice 70, a change in position of another device with a mobility statusof “static,” etc. The software 84 can be loaded onto the memory 82 bybeing downloaded via a network connection, uploaded from a disk, etc.The device 70 may be any of the devices 40-47 shown in FIG. 2, oranother device. The user interface 86 (e.g., a display and/or amicrophone and speaker) is optional, e.g., with the tablet 44 and thesmart phone 45 including a display, a microphone, and a speaker whilethe garage door opener 47 does not (typically) include a display, amicrophone, or a speaker, although the garage door opener 47 may includea user interface of some sort, e.g., switches operable by a user.

The transceiver 88 is configured to send communications wirelessly fromthe device 70 and to receive wireless communications into the device 70,e.g., from the devices 40-47, the access point 24, or the centralcontroller 60. Thus, the transceiver 88 includes one or more wirelesscommunication radios. In the example shown in FIG. 3, the transceiver 88optionally includes a BLUETOOTH radio 90, a Wi-Fi radio 92, and along-term evolution (LTE) radio 94. As shown, each of the radios 90, 92,94 are optional, although the transceiver 88 will include at least onewireless communication radio. Further, one or more other types of radiosmay be included in the device 70 in addition to, or instead of, theradio(s) 90, 92, 94. If the transceiver 88 includes more than onewireless communication radio, then the transceiver 88 may receive awireless communication using one of the wireless communication radios,and transmit (e.g., relay or forward), the communication (or a portionthereof) using a different wireless communication radio. Thecommunication may be transmitted to another of the devices 40-47 or toanother device such as the access point 24. Thus, for example, thedevice 70 may receive a wireless communication using the BLUETOOTH radio90, and forward the communication using the Wi-Fi radio 92 to anotherdevice that does not include a BLUETOOTH radio.

The processor 80 is configured to relay communications between devices,for example, from the central controller 60 the devices 40-47 or fromthe devices 40-47 to the central controller. For example, the processor80 may receive, via the transceiver 88, the request from the centralcontroller 60 (directly or indirectly, e.g., from another of the devices40-47) for the location of one of the devices 40-47. The processor 80may relay the request to one or more of the devices 40-47 withincommunication range of the device 70. The processor 80 is furtherconfigured to relay a reply from any of the devices 40-47 to the centralcontroller 60, or to another device for further relay until the replyreaches the central controller 60. The reply, for example, may be alocation of a target device, and the location may be a distance relativeto another device, for example from the device from which the reply isreceived.

Referring to FIG. 4, with further reference to FIG. 2, an example usecase of a mobile user 130 in a household communication system is shown.The household communication system is shown in the context of a home100. The home 100 and the devices and users therein are exemplary only,and not a limitation. The home 100 includes a kitchen 102, a family room104, a bedroom 106 and an office 108. The household communication systemincludes an access point 24 and a central controller 60 which may be thesame device (e.g., the central controller 60 may include the accesspoint 24). Example devices within the home 100 include a laptop device12, a mobile device 16 (e.g., belonging to the user 130), an automobile22, an oven 41, a charging station 111, a networked speaker device 112,a television 114, a smart circuit breaker box 116, a gaming console 118with a monitor 120. Each of the devices 12, 16, 22, 41, 111, 112, 114,116, 118, 120 may be a device 70 and are configured to communicate withthe central controller 60 (e.g., via the access point 24). The home 100also includes other individuals including a spouse 132, an elder child134 and the younger children 136 a, 136 b.

The following operational use cases are provided as examples tofacilitate the explanation of location aware smart event handling. Theuse cases are not limiting as location aware smart event handling may beutilized in a multitude of other scenarios. In an example, the user 130may arrive home via the automobile 22. At a first location 131 a, theuser 130 exits the automobile 22 and the automobile provides a messageto the central controller 60 to indicate that the user 130 has exitedthe automobile 22 (e.g., a change in status message). The centralcontroller 60 may save the status change information with the currenttime. The automobile 22 may also provide information regarding the timethe user 130 entered the vehicle, as well as other information such asodometer data, maintenance requirements, current gas level, and similarinformation associated with owning and maintaining an automobile. As theuser enters the kitchen 102 to greet the spouse 132 at a second location131 b, the oven 41 may be configured to detect the presence of the user130 based on presence detectors within the oven 41, or other presencedetectors in the kitchen 102 in communication with the oven 41. Thecentral controller 60 may receive an indication from the oven 41, orother presence sensor, that the user 130 is currently in the kitchen 102and then store the user's location information with the current time. Ifthe user 130 receives a notification (e.g., an email message) while inthe kitchen 102, the central controller 60 may send a notificationmessage to the oven 41 or the networked speaker device 112 to alert theuser of the arrival of the new message. The alert may be, for example, asound, a visual display, or an audio representation of the email content(e.g., via the networked speaker device 112). The spouse 132 may bepreparing a meal for the family and may have set a timer on the oven 41.The oven 41 may also be configured to send a notification to one or moreindividuals in the home 100 when the timer reaches zero (e.g., a dinnerbell).

The user 130 may linger in the kitchen 102 and may place their mobiledevice 16 on a charging station 111 (e.g., for recharging the mobiledevice via wired or wireless/inductive technologies). The centralcontroller 60 is configured to receive an indication from the mobiledevice 16 or the charging station 111 indicating that mobile device 16is currently located on the charging station 111 in the kitchen 102 andit is currently in a charging state. The user 130 may then enter thefamily room 104 at position 131 d to spend time with the elder child 134and watch the television 114. Presence detectors in the family room 104and/or the television 114 may provide an indication to the centralcontroller 60 that the user 130 is in the family room 104, and thecentral controller 60 is configured to store the new location of theuser 130 with the current time. For example, the television 114 mayinclude a camera and a microphone and may be configured to perform imageand voice recognition (i.e., local recognition). In an example, thetelevision 114 may be a means for obtaining an image or sound data, andprovide visual and acoustic information to the central controller 60 forrecognition processing (e.g., remote image processing). The centralcontroller 60 previously recorded that the elder child 134 was in thefamily room 104 and is providing notifications for the elder child 134to the television 114. The user 130 may create and store notificationpreferences on the central controller 60 to indicate that notificationsfor the user 130 should not be forwarded to the television 114. In anexample, the notification preferences established by the user 130 mayindicate that notifications should be forwarded to the television 114only when the user 130 is the only individual in the family room 104.The user 130 may conclude his time in the family room 104 and head tovisit the younger children 136 a-b in the bedroom 106. The presencesensors in the family room 104 and/or the television 114 may detect thedeparture of the user 130 and the central controller 60 may beconfigured to log the departure time. In an example, the departure ofthe user 130 from the family room 104 may cause the central controller60 to activate other presence sensors to determine a current location ofthe user 130.

The user 130 may continue to the bedroom 106 to position 131 e to talkwith the younger children 136 a-b. The bedroom 106 includes the gamingconsole 118 and the monitor 120 which are configured to communicate withthe central controller 60. The gaming console 118, the monitor 120, orother presence sensors in the bedroom 106 may detect the arrival of theuser 130 and the central controller 60 is configured to record the timeand new location of the user 130. For example, a microphone and/orcamera in the gaming console 118 may detect the user 130. While the user130 is in the bedroom 106, the automobile 22 may send an alert to thecentral controller 60 to indicate that one of the tires on theautomobile 22 is losing air (e.g., a low tire pressure alarm). The user130 may establish notification preferences such that all notificationsfrom the automobile 22 are to be forwarded to any capable device.Accordingly, the central controller 60 determines that the user 130 iscurrently in the bedroom 106 and that the gaming console 118 is capableof displaying the notification. The low tire pressure alarm notificationmay be displayed on the monitor 120 and the user may provide anacknowledgement (e.g., verbal, gesture, or via an input device) uponreceipt of the notification. The central controller 60 may be configuredto broadcast some notifications to multiple devices regardless of auser's location. For example, emergency messages such as the detectionof fire, smoke, sump pump failure, or other personal emergencies may besimultaneously forwarded to multiple devices in the home 100.

The low tire pressure notification message may prompt the user 130 toleave the bedroom 106 and enter the office 108 to research local tirerepair shops on the laptop 12. Presence sensors in the office, or thelaptop 12, may provide an indication to the central controller 60 thatthe user 130 is currently located in the office 108. The centralcontroller 60 may log when the user 130 departs from the bedroom 106 andwhen the user 130 enters the office 108. While the user 130 is using thelaptop 12, the dinner alarm on the oven 41 may reach zero and the oven41 may send a notification to the central controller 60. The centralcontroller 60 may forward the dinner alarm notification to thetelevision 114 (e.g., to alert the elder child 134), the gaming console118 (e.g., to alert the younger children 136 a-b), and the laptop 12(e.g., to alert the user 130). In an example, the oven 41 may beconfigured to query the central controller 60 for the current locationsof the elder child 134, the younger children 136 a-b, and the user 130and send the notifications directly to the television 114, the gamingconsole 118, and the laptop 12.

Referring to FIG. 5, with further reference to FIG. 4, an example usecase of a mobile device with multiple users in the householdcommunication system is shown. In the example use case depicted in FIG.5, the elder child 134 is in the home 100 with the younger children 136a-b. In this example, the adults (e.g., the user 130 and the spouse 132not shown in FIG. 5) have left in the automobile 22 and are in regularcommunication with the elder child 134 via notifications through amobile device 140. The mobile device 140 was originally in the familyroom 104 with the elder child 134 and thus the central controller 60would forward notifications to mobile device 140. A younger child 136 bsubsequently obtained the mobile device 140 and moved with it to aplayroom 110 to watch a movie on the mobile device 140. The centralcontroller 60 is configured to detect the movement of the mobile deviceand determine a current user of the mobile device 140. For example, themovement of the mobile device may be determined based on changes in thereceived signal strength between the mobile device 140 and the accesspoint 24, the television 114, and/or the gaming console 118. A locationof the mobile device 140 may be determined based on ranges to the otherdevices in the home 100 (e.g., RTT, RSSI, OTDOA). In an embodiment, aVisual Light Communication (VLC) system may be used to determine thecurrent location of a device. For example, the mobile device 140 may beconfigured to determine a change in location based on signals receivedfrom a first VLC light source 142 a in the family room 104 and a secondVLC light source 142 b in the playroom 110. The current user of themobile device 140 may be determined based on the locations of the mobiledevice 140 and potential users (e.g., the younger child 136 b). Forexample, presence sensors in the playroom 110 may detect the presence ofthe younger child 136 b and the position of the mobile device 140 mayalso be determined to be in the playroom 110. In an example, a userlog-in credential may be used to determine a current user. The currentstate of the mobile device 140 such as the current executing application(e.g., a game, a social media application, a streaming mediaapplication) may be used to infer a current user. A sensor on the mobiledevice 140 such as a camera (e.g., image recognition) and a microphone(e.g., voice recognition) may be used to determine the current user.

The central controller 60 may be configured to determine the locationsof both the devices and the persons in the home 100. The centralcontroller 60 maintains a chronological log of the respective locationsand can determine when a device and a user are no longer collocated. Inthis example, the central controller 60 determines that the mobiledevice 140 has moved to the playroom 110 and that the elder child 134has not moved from the family room 104. As a result, the centralcontroller 60 is configured to provide future notifications for theelder child 134 to the television 114. When the adults (e.g., the user130 and the spouse 132) contact the elder child 134, a notification 144may be displayed, sounded, or otherwise presented on the television 114rather than the mobile device 140. Correspondingly, if the adults desireto contact the younger children 136 a-b, the central controller 60 maysend notifications to the gaming console 118 and the mobile device 140,respectively.

Referring to FIG. 6, with further reference to FIGS. 4 and 5, an exampleuse case of a static device with multiple users in a householdcommunication system is shown. In the use case depicted in FIG. 6, theuser 130, the spouse 132, the elder child 134 and the younger children136 a-b are located in the family room 104 with the television 114.Sensors on the television 114 (e.g., camera, microphone) and otherpresence sensors in the home 100 may be used to establish the locationsof each of the individuals. The central controller 60 is configured tomaintain a chronological log of the locations of each of theindividuals. In an example, the user 130 may receive a notification(e.g., based on an email/message from external server (not shown in FIG.6), an alarm from the vehicle 22, a reminder from the laptop 12, etc.)and the central controller 60 may direct the notification to one or moredevices based on preferences established by the user 130. For example,the user 130 may establish a priority for each device to indicate arelative order in which the notifications are to be forward. The centralcontroller 60 may initially forward the notification to the mobiledevice 16 currently in the charging station 111. The notificationmessage from the central controller 60 may include parameters associatedwith how the notification is to be presented (e.g., display, audio). Aspreviously described, the central controller 60 may utilize the currentlocation for the user 130 and the mobile device 16 to determine thatthere is some space between the user 130 and the mobile device 16 (e.g.,they are in neighboring rooms). The notification may include attributesto control the volume of a speaker on the mobile device 16, and themobile device 16 may the produce a first notification message 146 at ahigher volume (e.g., so that the user 130 in family room 104 may hearit). If the user 130 does not acknowledge the notification message 146within a certain time (e.g., 20 sec, 40 sec, 1 minute), the centralcontroller 60 may send the notification to the networked speaker device112. The networked speaker device 112 may produce an audio signal 148 ata volume level corresponding to the distance to the user 130 based onattribute information included in the received notification message(e.g., the greater the distance, the louder the audio signal). In anexample, a volume level preference may be included in the notificationmessage. The networked speaker device 112 may be configured to receivean acknowledgement from the user 130 (e.g., via a voice command). If theuser 130 does not acknowledge the audio signal 148 within apre-established time limit, the central controller 60 may be configuredto send a notification message to the television 114. Continuing theexample from FIG. 4, the preferences stored on the central controller 60for the user 130 may indicate that notifications for the user 130 maynot be presented on the television 114 if other individuals are in thefamily room 104. In this example, the central controller 60 may attemptto send notifications from the top of the priority order (e.g., makeadditional attempts for each device), or it may send apending-notification signal a device to indicate that an unacknowledgednotification is stored on the central controller 60. Thepending-notification message is a particular subset of a notificationmessage in that the pending-notification message does not include thetext associated with the notification. Rather, the pending-notificationmessage contains an information element (e.g., a bit, a character) toenable the user specific icon to be displayed on one or morenotification devices associated with the location of the user. In anexample, the pending-notification signal may be sent to the television114, or other devices, and a small icon associated with the user 130 maybe displayed on the television 114, or other devices, to prompt the user130 to retrieve the pending-notification.

Referring to FIGS. 7A and 7B, with further reference to FIG. 6, anexample device 150 with a multiuser notification display is shown. Thedevices 150 may be a display device that is generally viewed by multipleusers simultaneously. For example, the device 150 may be the television114, the gaming console 118 with the monitor 120, or the mobile device140. The device 150 may receive notification messages with attributeinformation from the central controller 60 to provide personalizednotifications based on user preferences. In an example, referring toFIG. 7A, the device 150 includes a display area 152 with one or morenotification areas such as an emergency notification area 154, a homenotification area 156, an icon display area 157, a first usernotification area 158, a second user notification area 160, a third usernotification area 162, and a fourth user notification area 164. Thenumber and disposition of the notification areas are exemplary only andnot a limitation as additional or fewer areas may be configured on thedisplay area 152. The attributes in the notification messages receivedfrom the central controller 60, or other devices on the network, mayinclude information associated with the intended notification recipientand/or the origin of the notification (e.g., sending user, sendingdevice). The emergency notification area 154 may be a banner area acrossthe display area 152 and may be utilized to display notifications withan emergency attribute. For example, in a health care use case, a homebased medical device (e.g., meters/monitors, respiratory equipment,telehealth equipment) may be configured to communicate with the centralcontroller 60 to provide notifications to one or more users. Emergencynotifications from such devices may be received by the device 150 and acorresponding notification may be displayed in the emergencynotification area 154. Other emergency notifications such as weatheralerts, personal distress alarms (e.g., medical alert devices, falldetection), and fire/security notifications may include an emergencyattribute and be displayed in the emergency notification area 154.

The home notification area 156 is used to display notifications with ahome notification attribute. For example, home related devices such asovens, refrigerators, climate control systems, sump pumps, solar cellchargers, and the like may be configured to communicate with the centralcontroller 60. Status messages received from these devices may beforwarded to the device 150 and displayed in the home notification area156. As depicted in FIG. 7A, the home notification area 156 may be abanner at the bottom of the display area 152. This relative locationprovides an immediate visual indicator to the user that the notificationrelates to a home system.

The icon display area 157 may be an area on the periphery of the displayarea 152 to present one or more small icons associated with the users ofthe device 150 to prompt one or more of the users to retrievepending-notifications. In an example, each user may have an iconpreference (e.g., a particular icon design, a personal avatar) which maybe displayed in the icon display area 157 whenever the correspondinguser is collocated with the device 150. In an example, a user icon maybe displayed regardless of the locations of the user and the device.Referring to FIG. 4, the central controller 60 may provide apending-notification message to various devices in the home 100 based onthe current location of the user 130. For example, if the user 130 hasone or more pending-notifications, the networked speaker device 112 mayemit a user specific ring tone or a speech notification when the user130 is located in the kitchen 102 to indicate that the user 130 has apending notification. The central controller 60 may provide one or morenotification messages based on the current location of the user 130. Thenotification message may instruct a device to display an icon associatedwith the user 130 in the icon display area 157 when the user is detectedin a location (e.g., on the television 114 when the user is in thefamily room 104, on the monitor 120 when the user enters the bedroom106, or on laptop 12 when the user enters the office 108). In anexample, the central controller 60 may send notifications to multipledevices in the home 100 to activate a user specific icon displayregardless of the location of the user 130.

The display area 152 may include one or more notification areas todisplay notifications associated with individual users or user groups.For example, notifications for the user 130 may be displayed in thefirst user notification area 158, notifications for the spouse 132 maybe displayed in the second user notification area 160, notifications forthe elder child 134 may be displayed in the third user notification area162, and notifications for the younger children 136 a-b may be displayedin the fourth user notification area 164. The number, locations anddimensions of the user notification areas may vary based on the size andcapabilities of the device 150. The central controller 60 may provideattribute and preference information in a notification message to enablethe device 150 to present a notification in an appropriate area of thedisplay area 152. In an example, referring to FIG. 7B, the device 150may be configured to use one or more different balloon features todisplay system or user specific notifications. In general, balloonfeatures may be any different geometric patterns or visual combinationswhich allow for visual distinctions between different balloon features.Examples of different geometric patterns may include a star shape 166,an oval shape 168, a triangle shape 172, and rectangle shape 170. Otherpatterns, colors, textures, fonts, icons, and audible sounds (e.g., fornon-display device) may be used. A balloon feature may be associatedwith a specific user, or user group, and serve as an immediate visual oraudible indicator that a notification is intended for a specific user.For example, notifications for the spouse 132 may be presented in a starshaped balloon 166, notifications for the elder child 134 may bepresented in an oval shape 168, emergency notifications may be presentedin a triangle shape 172 and home notifications may be presented in arectangle shape 170. The shapes and relative locations of the balloonfeatures on the display area 152 are exemplary only as other userspecific shapes may be used. In an example, a combination of balloonfeatures and notification areas may be used to provide user specificnotifications on a multiuser device.

Referring to FIG. 8, with further reference to FIGS. 1-6, an example ofthe central controller 60 comprises a computer system including aprocessor 180, a memory 182 including software (SW) 184, an optionaluser interface 186, and a transceiver 188 optionally including aBLUETOOTH (BT) radio 190, a Wi-Fi radio 192, and/or an LTE radio 194.Other types of radios may also or alternatively be used, e.g., aBLUETOOTH-Low Energy (BT-LE) radio. The processor 180 is preferably anintelligent hardware device, for example a central processing unit (CPU)such as those made or designed by QUALCOMM®, ARM®, Intel® Corporation,or AMD®, a microcontroller, an application specific integrated circuit(ASIC), etc. The processor 180 may comprise multiple separate physicalentities that can be distributed in the central controller 60. Thememory 182 may include random access memory (RAM) and/or read-onlymemory (ROM). The memory 182 is a non-transitory, processor-readablestorage medium that stores the software 184 which is processor-readable,processor-executable software code containing instructions that areconfigured to, when performed, cause the processor 180 to performvarious functions described herein. The description may refer only tothe processor 180 or the central controller 60 performing the functions,but this includes other implementations such as where the processor 180executes software and/or firmware. The software 184 may not be directlyexecutable by the processor 180 and instead may be configured to, forexample when compiled and executed, cause the processor 180 to performthe functions. Whether needing compiling or not, the software 184contains the instructions to cause the processor 180 to perform thefunctions. The processor 180 is communicatively coupled to the memory182. The processor 180 in combination with the memory 182, the userinterface 86 (as appropriate), and/or the transceiver 188 provide meansfor performing functions as described herein, for example, means orreceiving a notification message for a user, means for determining alocation of the user, means for determining a notification device, meansfor determining one or more notification preferences associated with theuser and one or more notification devices, and means for sending analert message based on the notification preferences. The software 184can be loaded onto the memory 182 by being downloaded via a networkconnection, uploaded from a disk, etc. The central controller 60 isshown in FIGS. 2, 4-6 as a standalone device separate from the devices40-47, 112, 114, 118, 120, 140 but the central controller 60 could beimplemented by one or more of the devices 40-47, 112, 114, 118, 120, 140and/or one or more other wireless communication devices such as theWi-Fi router 24. The central controller 60 is preferably, though notnecessarily, a (primarily) static device.

The central controller 60 may act as a repository for, and tracker of,information regarding the devices 40-47, 112, 114, 118, 120, 140 and theusers 130, 132, 134, 136 a-b. For example, the central controller 60 maystore config files and/or attributes of one or more of the devices40-47, 112, 114, 118, 120, 140 as well as preference information for theusers 130, 132, 134, 136 a-b. The central controller 60 may use thisinformation to produce alert messages/notifications. As another example,the central controller 60 may track locations of one or more of thedevices 40-47, 112, 114, 118, 120, 140 and/or the locations of one ormore of the users 130, 132, 134, 136 a-b.

The processor 180 is configured to generate, store (via the memory 182),modify, and transmit (via the transceiver 188) attribute values andpreferences corresponding to the devices 40-47, 112, 114, 118, 120 andthe users 130, 132, 134, 136 a-b. The processor 180 may determine andupdate the attributes, e.g., each time the processor 180 detects apossible change in an attribute (e.g., new location of a user, newlocation of a device, a new device within communication range, etc.).The device and user attributes and preferences may be stored by otherdevices and their respective values will typically vary depending onthat device. In an example, the capabilities of the central controller60 may be performed by one or more of the devices 40-47, 112, 114, 118,120, 140 (e.g., a device 70 in FIG. 3), and the processor 180 may storeattribute values of other devices 40-47, 112, 114, 118, 120, 140. Forexample, referring also to FIGS. 10A and 10B, the processor 180 maygenerate and maintain attribute tables 220, 240 including indications ofattributes 222, 242 and respective values 224, 244. The attribute table220 includes an index 226, a start time 228, an end time 230, a useridentification 232, a user location 234 and a device identification 236.The index 226 may uniquely identify a record in the table 220. The starttime 228 and the end time 230 contain time stamps corresponding to thetime that a user in a location. The user identification 232 identifies aparticular user or user group. In an embodiment, the user identification232 is pointer to a user table (e.g., based on an index value). The userlocation 234 identifies the current location of the use in anappropriate coordinate system (e.g., ENU, LLA, common name). The deviceidentification 236 may include information associated with a device thatis reporting the user location. In an example, the device identification236 is a link (e.g., index value) to a device table. Other attributefields may associated with a user location may be included in the table220.

The table 240 includes attributes associated with the location of amobile device. For example, the table 240 includes an index 246, adevice identification 248, a start time 250, and end time 252, a devicelocation 254, a current user identification 258 and a state 260. Theindex 246 may uniquely identify a record in the table 240. The deviceidentification 248 may include information to identify a particulardevice. For example, the device identification may be an index valuecorresponding to a device table. The start time 250 and the end time 252correspond to the time a device is in a location. The device location254 is an indication of the location of the device in an appropriatecoordinate system (e.g., ENU, LLA, common name). The current user 258indicates a user or user group that is currently using the device. Thecurrent user 258 may contain an index associated with a user table. Thestate 260 is an indication of the current state of the device. The statemay include information on current applications executing on the device,an indication of whether the device is a hibernate state, current powerlevel, or other operational parameters to identify the current state ofthe device. The attributes 222, 242 and the values 224, 244 are examplesonly as other attributes and values may be included.

The processor 180 may maintain tables of attributes for devices andusers presently and/or formerly associated with the home 100. In anexample, a user may provide preferences for one or more attributesassociated with a device. Referring to FIG. 10C, a table 270 includesindications of user preferences 272 and values 274. The table 270includes an index 276, a user identification 278, a deviceidentification 280, a priority preference value 282, a privacypreference 284, a display area preference 286, an alert style preference288 and a wake-up preference 290. The index 276 uniquely identifies arecord in the table 270. The user identification 278 and the deviceidentification 280 identify a relationship between a user (or usergroup) and a device. The priority preference value 282 may contain aninteger value to indicate a relative preference order in which thedevice will provide notifications to the related user. A prioritypreference value 282 of zero may indicate that notifications are not tobe forward to a device. The privacy preference 284 may include a Booleanvalue (e.g., true/false) to indicate that private notifications may besent to the device. In an example, the privacy preference 284 mayinclude a link (e.g., index value) to a privacy rules table containingrules/constraints to determine if and how notifications are presented ona given device for a specific user. The display area preference 286 mayindicate an area in a device display that the user's notificationsshould appear. The display area preference value 286 may be text stringor a link to a display related options table to indicate the userpreferred notification area. The alert style preference 288 includesdata pertaining to how an alert may be presented. In an example, thealert style preference 288 may indicate visual aspects (e.g., balloonfeatures), audio aspects (e.g., tones, volume, text to speech), or otheraspects to enable each user to configure how notifications are presentedon a specific device. The wake-up preference 290 includes data (e.g., aBoolean value) to indicate whether a device should change state from“hibernate” to “awake” upon receipt of a notification. In general, theuser preferences in table 270 enable a device to selectively performattributes based on a particular user. A device 70 including theprocessor 80 may also be configured to generate and store attribute andpreference values associated with other devices and users. In an examplea device 70 may be configured to just relay the attribute and preferencevalues to other devices in a network. The user preferences 272 and thecorresponding values 274 are examples only as other user preferences andvalues may be included based on the capabilities of the devices in anetwork as well as other system considerations.

The processor 180 is configured to determine and provide positions ofthe devices and users relative to one or more reference locations orobjects, and may provide the positions in one or more formats. Forexample, the processor 180 may generate a position relative to a fixedlocation in space. A user location 234 and a device location 254 mayinclude a value in ENU (East, North, up) coordinates based on commonreference point (e.g., origin). In an example, the locations may beprovided in a Latitude, Longitude and Altitude (LLA) format. Theprocessor 180 may be configured to monitor the positions of the devicesand users in the home 1000. The processor 180 may be configured todetermine a change in the position of a device based on a neighboringdevice list, ranges to neighbors, and/or an estimated position. Theprocessor 180 may be configured to determine the location of a userbased on sensor input (e.g., image recognition, sound recognition,presence sensors) or user activity (e.g., activating a device, enteringlog-in credentials). In an example, the processor 180 may infer a userbased on the state 260 of a device. For example, the state 260 mayindicate one or more applications that are executing on a device.Historical data may be used to correlate a state 260 with a current user258. The processor 180 may be configured to provide peer monitoring todetect changes in the location of one or more neighbor devices. Forexample, the processor 180 may detect and report a change in position ofa particular neighboring device if the positions of a majority of theneighboring devices are constant while the relative position of theparticular neighboring device changes. The processor 180 may report achange in position of a particular device if the existence of theparticular neighboring device on the neighbor list changes, e.g., frombeing on the list to not being on the list, or from not being on thelist to being on the list, while the ranges to other devices on theneighbor list remain the same.

The central controller 60 may store and maintain a device and userattributes and preferences in chronological order (e.g., based on starttimes 228, 250). The chronological information stored in the tables 220,240 may be used, as discussed in the preceding use cases, to facilitatelocating a user and/or a device and providing user specificnotifications. The central controller 60 is configured to produce andmaintain (e.g., update) the device and user attribute and preferenceinformation including the tables 220, 240, 270. In other examples, thecentral controller 60 may be configured to produce and maintain a deviceand user data with a different set of fields (e.g., more fields, fewerfields, different fields, or a combination thereof). The centralcontroller 60 is, and in particular the transceiver 188 and theprocessor 180 are, configured to receive information for populating thetables 220, 240, 270 from the devices 40-47, 112, 114, 118, 120, 140.The information for the tables 220, 240, 270 may be received directlyfrom the device to which the information pertains, and/or from one ormore devices that relay the information. Consequently, the centralcontroller 60 may receive information for one or more of the devices40-47, 112, 114, 118, 120, 140 via one or more of the radios 190, 192,194 even though the device from which the information was originallysent does not include the type of radio in the transceiver 188 throughwhich the controller 60 receives the information. The devices 40-47,112, 114, 118, 120, 140 may send information for the tables 220, 240,270 periodically, or in response to a change in the information for oneor more of the fields in the tables 220, 240, 270. Further, the centralcontroller 60 (or the device 70) may create an attribute entry foranother device. For example, a discovering device (e.g., the controller60 or the device 70) may see another device that is not part of anattribute table and may generate an attribute table entry (or entries)for that device, and may transmit that attribute table entry (orentries) to one or more other devices, and/or may transmit informationto one or more other devices which may generate an attribute table entry(or entries) using this information. Thus, the device 70 may discover a“new” device, generate one or more attribute table entries for the newdevice, and send the attribute table entry (or entries), directly orindirectly, to the controller 60 for storage. Also or alternatively, thedevice 70 may discover a “new” device, send (directly or indirectly)information regarding the new device to the controller 60 for generationand storage of an attribute table entry (or entries).

Referring to FIG. 9, an example message flow 200 for user locationtracking is shown. The message flow 200 is an example of communicationbetween networked devices and includes a controller 208 and threeexample devices labeled as device A 202, device B 204 and device C 206.The message flow 200 is divided into three events including a deviceregistration event 210, a user awareness and tracking event 212, and analert trigger and notification display event 214. The controller 208 maybe the central controller 60 or a device 70. The three example devices202, 204, 206 may include the devices 40-47, 112, 114, 118, 120, 140.During the device registration event 210, device A 202 attempts toconnect to the controller 208 and complete a registration process. Forexample, the controller 208 may be part of an 802.11 network and mayrequest authentication information from device A 202. The authenticationmay include a security exchange such as Wired Equivalent Privacy (WEP)and Wi-Fi Protected Access (WPA), or other security protocols. Device A202 may complete the authentication process and registration process byproviding device and user attribute data to the controller 208. Forexample, device A 202 may provide data stored in memory including fieldssuch as the attribute and preference tables 220, 240, 270 to thecontroller 208. Device A 202 may be configured to provide updates to theregistration information based on a periodic basis, or when triggeringevents occur (e.g., if device A leaves the network, relocates to a newlocation in the network, receives new/updated user data). The controller208 is configured to maintain the registration information, includingdevice and user attribute data, for each of the devices in the network.

In the user awareness and tracking event 212, the devices 202, 204, 206are configured to provide information regarding the location of users tothe controller 208. For example, device C 206 may include sensorinformation such as facial or voice recognition to determine thelocation of a user. Other presence sensors may be operably coupled todevice C 208 to provide an indication of the location of a user. In anexample, a user input (e.g., log-in process) may be used to determinethe location of a user. Device C 206 may be configured to log useridentification information 232, user location information 234, and astart time 228 in an attribute table 220. The attribute table, or thecorresponding data fields, may be provided to the controller 208 via awireless data exchange. The controller 208 is configured to store theattribute information in one or more tables and provide the informationto other devices on the network.

In the alert trigger and notification display event 214, a device in thenetwork may send a notification to another device directly or via thecontroller 208. For example, device B 204 may have a notification for auser and may send a query to the controller 208 to request the user'slocation. The query sent by device B 204 may include a useridentification and the controller 208 is configured to determine alocation, a proximate device and any associated user and deviceattributes included in the device and attribute tables 220, 240, 270.The controller 208 generates an alert message including attributes andpreferences associated with the location of the user. In an example, thealert message may include one or more 802.11 Media Access Control (MAC)frames to transport the attribute and preference information. In anexample, the alert message may include the location of the user based onENU or LLA coordinates. The location information may also be based on acommon names in an area (e.g., kitchen, family room, bedroom, office,etc.). The controller 208 sends the alert message to device B 204, whichmay then send a notification to one or more devices based on theattribute information in the alert message. For example, device B 204may send a notification for a user directly to device C 206. In anexample, device B may send the notification to the controller 208 andthe controller 208 may forward the notification to device C in an alertmessage (i.e., based on the attribute and preference information). In anembodiment, the notification sent to device C 206 may require anacknowledgement from the user (e.g., a confirmation of receipt) via aninput apparatus on device C 206. For example, device C 206 may have atouch screen display or microphone or other sensor configured to receivea user input. Device C 206 may send an acknowledgement message to deviceB 204 or the controller 208.

Referring to FIG. 11, with further reference to FIGS. 1-10C, a method300 for sending an alert message includes the stages shown. The method300 is, however, an example only and not limiting. The method 300 can bealtered, e.g., by having stages added, removed, rearranged, combined,performed concurrently, and/or having single stages split into multiplestages.

At stage 302, the central controller 60, or other communication devicesuch as a device 70, may receive a notification message for a user. Thenotification message may originate from an external server 30 via thenetwork 28 (e.g., a messaging server, email server, voice or videocommunications server) or from another device within a network (e.g.,devices 40-47, 112, 114, 118, 120, 140). The notification includes anindication of a user or group of users such as email address, phonenumber, user identification number, user name, or other data field, andthe central controller 60 (or other communication device) is configuredto query one or more data structures to determine attributes andpreferences associated with the user. In an example, the notificationmessage may include information to be forwarded to a user. Thenotification message may be a query from a device to obtain attributesand preferences associated with the user without including theinformation to be forwarded to the user.

At stage 304, the central controller 60 or other communication devicedetermines the location of the user. The location of the user may bebased on at least one presence sensor. In an example, the centralcontroller 60 may query a data structure such as the attribute table 220based on the user identification 232 to determine a user location 234based on prior sensor information. The attribute table 220 may includeuser location information in chronological order (e.g., based on thestart time 228 or the end time 230) and the central controller 60 mayselect the most recent entry as the current location of the user. In anexample, the location information may become stale (e.g., the differencebetween the current time and the most current start time 228 exceeds athreshold value) and the central controller 60 may attempt to execute auser search function on the network. A user search function may includecommunications from the central controller 60 to one or more devices40-47, 112, 114, 118, 120, 140 with instructions to activate a presencesensor associated with the device. For example, the gaming console 118or television 114 may include a camera and the user search function mayinstruct the device to obtain an image with the camera. A device mayperform local image processing, or send the image to the centralcontroller 60 for image recognition process to determine if the user isin the image. In an example, the user search function may include usingthe central controller 60 to contact a remote server to obtain userlocation information (e.g., Google Geolocation, Life360, etc.). Inanother example, the user location may be inferred based on historicaldata on the central controller 60 (e.g., attribute tables 220, 240).

At stage 306, the central controller 60 or other communication devicedetermines one or more notification devices based on the location of theuser. A location attribute of the user determined at stage 304 may beused to select one or more devices based on the current devicelocations. For example, the central controller 60 may query theattribute table 240 based on the user location 234 as compared to thedevice location 254. The query parameters may include a range functionsuch that devices within a range threshold (e.g., 1 m, 3 m, 10 m) of theuser location may be selected. In an example, the user and devicelocations may correspond to room identification values (e.g., familyroom 104, bedroom 106, etc.), and the query may select devices based onthe room identification value. In another example, one or more devicesmay be determined regardless of the value of the user location 234(e.g., one more devices may be determined based on other user preferencevalues).

At stage 308, the central controller 60 or other communication devicegenerates an alert message based on one or more notification preferencesassociated with the user and one or more notification devices. Thecentral controller 60 may query a preference table 270 based on the useridentification 278 and one or more device identification values 280 todetermine one or more preference values (e.g., priority preference value282, privacy preference 284, display area preference 286, display stylepreference 288, wake-up preference 290, and others). The centralcontroller 60 may generate one or more alert messages based on thepreference values. In an example, the central controller utilizes dataframes in existing wireless messaging protocols (e.g., 802.11, BT-LE) togenerate alert messages based on one or more preference values. The dataframes may be populated with the appropriate preference values. Thealert message may also contain one or more attributes from the attributetables 220, 240. Referring to the use cases described in FIGS. 4-6, adevice may provide a notification based on a received alert message. Forexample, the television 114 may display a user notification in a usernotification area based on the value of display area preference 286 inthe alert message. The networked speaker device 112 may present an audionotification based on a user preference value, such that the volume ofthe audio notification is based on a distance between the user and thedevice (e.g., user location 234 and device location 254). If multipledevices identifications 280 are selected, the central controller 60 maygenerate multiple alert messages based on the priority preference values282, or other rules and constraints available to the central controller60.

At stage 310, the central controller 60 or other communication devicesends an alert message to at least one of the one or more notificationdevices based on the notification preferences. The central controller 60may utilize network transport protocols associated with the devices onthe system 10 to provide an alert message containing the attribute andpreference values to the appropriate devices. The central controller 60may send the alert message based on the location of the user (e.g., tothe closest device), in an order based on a preference value (e.g.,priority), based on the capabilities of the device (e.g.,display/audio), or combinations thereof. The central controller 60 maydetermine not to send an alert message based on preference values (e.g.,the privacy preference value 284). The alert message may be apending-notification message configured to activate a user specific iconon a device. In an example, the central controller 60 may send the alertmessage to a requesting device (e.g., device B 204 in FIG. 9), and therequesting device may generate and send a notification message toanother device based on the attributes and preferences included in thealert message received from the central controller 60. In an example,the attribute and preference tables 220, 240, 270 may exist on one ormore other communication devices in a network and thus the number ofoperations performed by the central controller 60 may be reduced oreliminated.

Referring to FIG. 12, with further reference to FIGS. 1-10C, a method320 sending an alert message to a notification device includes thestages shown. The method 320 is, however, an example only and notlimiting. The method 320 can be altered, e.g., by having stages added,removed, rearranged, combined, performed concurrently, and/or havingsingle stages split into multiple stages.

At stage 322, the central controller 60 receives a notification for auser. The notification message may originate from an external server 30via the network 28 (e.g., a messaging server, email server, voice orvideo communications server, a medical alert system) or from anotherdevice within a network (e.g., devices 40-47, 112, 114, 118, 120, 140).The notification includes an indication of a user or group of users suchand email address, phone number, user identification number, user name,or other data field. The notification message may include one or morefields indicating that the notification is of an emergency status. Forexample, the notification may originate from a medical alert systemassociated with elderly relative a user and an emergency status may beinferred based on the originator's address (e.g., the medical alertsystem). In another example, a control system in home (e.g., sump-pump,fire detector, CO2 monitor) may be configured to send a notification toa user with an emergency field. At stage 324, the central controller 60is configured to determine if the notification message is an emergency.The decision may be based on the origin of the notification message, animplicit emergency field in the notification message, or on othercriteria associated with information in the notification message.

At stage 326, the central controller 60 determines one or more emergencydevices associated with the user. In an example, the central controller60 may query the preference table 270 with the user identification 278and priority preference value 282 to determine one or more device. Inone implementation, the priority preference value 282 may include one ormore characters (e.g., the letter ‘E,’ or other characters) or otherinformation to signify the user's desire that the device be used foremergency notifications. In another example, the central controller 60may determine that all devices associated with the user identification278 will receive an emergency alert message.

At stage 328, the central controller 60 sends an alert message to theone or more emergency devices. The central controller 60 may utilizenetwork transport protocols associated with the devices on the system 10to provide an alert message to the emergency devices. The centralcontroller 60 may send the alert message to multiple devices, andmultiple times (e.g., repeatedly) until an acknowledgment is receivedfrom the user. The central controller 60 may also sendpending-notification messages to one or more devices that are associatedwith the user but are not necessarily identified as an emergency device.

At stage 329, the central controller 60 determines the location of theuser. In an example, the central controller 60 may query a datastructure such as the attribute table 220 based on the useridentification 232 to determine a user location attribute 234. Theattribute table 220 may include user location attributes inchronological order (e.g., based on the start time 228 or the end time230) and the central controller 60 may select the most recent entry asthe current location of the user. In an embodiment, the user locationmay be inferred based on historical data on the central controller 60(e.g., attribute tables 220, 240). For example, the central controller60 may query the attribute table 220 based on the current time (e.g., ascompared to the start time 228) and the user identification 232, and thequery results may return one or more device identification values 236,which may be linked to device locations 254 in the attributes table 240.In this example, the most popular (e.g., high count return) devicelocations 254 may be used as the current user location. Other devicesand sensors in the home 100 may be used to determine the location of auser. For example, the smart circuit breaker box 116 may provideelectrical current information (e.g., amperes per circuit) to thecentral controller 60, and the location of one or more users may beinferred based on the areas in the home 100 as a function of relativechanges in power consumption (i.e., higher power consumption may implythat more devices are in use by users in an area).

At stage 330, the central controller 60 determines one or morenotification devices based on the location of the user, wherein eachnotification device is associated with one or more device attributes.The location attribute of the user determined at stage 329 may be usedto select one or more potential notification devices based on thecurrent user location as compared to the location attributes of thedevices. For example, the central controller 60 may query the attributetable 240 based on the user location 234 as compared to the devicelocation 254. The query parameters may include a range function suchthat devices within a range threshold (e.g., 15 m) of the user locationmay be selected. In an example, other rules or constraints on thecentral controller 60 or on other network devices, may be used todetermine the one or more notification device. For example, a rulesengine may be programmed to return a list of devices based on a roomidentification value attribute (e.g., ‘family room,’ ‘kitchen,’‘office,’ etc.). In this example, the rules engine may select devices inthe same or adjoining rooms that are proximate to the user.

At stage 332, the central controller 60 determines one or morenotification preferences associated with the user. The centralcontroller 60 may query a preference table 270 based on the useridentification 278 and one or more device identification values 280 todetermine one or more notification preference values (e.g., prioritypreference value 282, privacy preference 284, display area preference286, display style preference 288, wake-up preference 290, and others).The central controller 60 may generate one or more alert messages basedon the notification preference values. For example, the centralcontroller 60 may generate an alert message for display on the gamingconsole 118. In another example, the central controller 60 may generatean alert message to be forwarded to another device by the gaming console118. In this example, the younger children 136 a-b may instruct thegaming console 118 to send a message to the elder child 134 who may benotified via the television 114. The gaming console 118 may query thecentral controller 60 for information regarding the location of theelder child 134, and the central controller 60 may generate an alertmessage containing attributes and preferences associated with the elderchild 134 (e.g., the user identification 278) and the television 114(e.g., the device identification 280). In another example, theattributes and preferences tables 220, 240, 270 may persist on thegaming console 118 (and/or other devices) and the alert messagegenerated on the central controller 60 only includes a locationattribute for the elder child 134

At stage 334, the central controller 60 sends an alert message to one ormore notification devices based on the notification preferences and thedevice attributes. The central controller 60 may utilize MAC dataframes, or other data fields, in a wireless messaging protocol togenerate and then send alert messages containing one or more preferenceand attribute values (e.g., values from the attribute and preferencetables 220, 240, 270). The alert message may, for example, provideinstructions to enable the gaming console 118 and/or the television 114to display a user notification in a user notification area based on thevalue of display area preference 286 in the alert message. Theautomobile 22 may be configured present an audio notification based on auser preference value (e.g., text-to-speech voice/style preferences). Ifmultiple devices identifications 280 are selected, the centralcontroller 60 may generate multiple alert messages based on the prioritypreference values 282, or other rules and constraints available to thecentral controller 60.

Referring to FIG. 13A, with further reference to FIGS. 1-10C, a method340 of sending an alert message with a notification preference includesthe stages shown. The method 340 is, however, an example only and notlimiting. The method 340 can be altered, e.g., by having stages added,removed, rearranged, combined, performed concurrently, and/or havingsingle stages split into multiple stages.

At stage 342, the central controller 60 receives a notification from analerting device. The alerting device may be a device 70 such as anappliance (e.g., dish washer 40, oven 41, toaster 42, refrigerator 43),or other device in the home 100 (e.g., charging station 111, automobile22, gaming console 118, mobile device 140). The alerting device may beremote server 30 that is operably connected to the central controller 60via a network 28. A remote server 30 may include an email/messagingserver, medical alert system, security system, financial services, orother applications configured to provide notifications to one or moreusers. The central controller 60 may be configured to receive andprocess the notification in a first-in-first-out order of operation. Thecentral controller 60 may store the received notification in a filesystem for subsequent processing based on pre-established rules (e.g.,concurrent notifications may be prioritized based on alerting devicetypes).

At stage 344, the central controller 60 determines a notificationrecipient associated with the alerting device. The notificationrecipient may be a single user or a user group and may be identified byinformation within the notification (e.g., email address(es), username(s), telephone number(s)). The central controller 60 is configuredto parse the user information from the received notification. In anexample, the central controller 60 may include a look-up table includingpotential alerting device types and a corresponding user information.For example, devices associated with the operation of the home 100(e.g., appliances, air handling, sump pumps, etc.) may be associatedwith the spouse 132 such that the spouse 132 will be the notificationrecipient for all notifications received from those alerting devices.

At stage 346, the central controller 60 determines a location and one ormore notification preferences associated with the notificationrecipient. The central controller 60 may query the attribute andpreference tables 220, 270 based on the user identification values 234,278 and the start time value 228. The query results may include one ormore potential user locations 234. At stage 348, the central controllerdetermines a notification device based on the location and the one ormore notification preferences. The results of the query at stage 346 mayinclude a subset of potential notification devices (e.g., the union ofthe records including the device identification values 236, 280 and theuser identifications 232, 278), and the corresponding preferences fromthe preference table 270. The subset of potential notification devicesmay be further narrowed based on preference values (e.g., prioritypreference value 282, privacy preference 284, and other constraints). Inan example, the priority preference value 282 may include a value toindicate that a corresponding device should receive all notifications(e.g., regardless of the user's location). Conversely, the prioritypreference value 282 may indicate that a device should not receive analert message even if the device is collocated with (e.g., proximate to)the user. Other constraints may be placed on the query results based onthe content of the received notification and the capabilities of thepotential notification devices. The central controller 60 may generateone or more alert messages based on the notification device, or devices,determined at stage 348. The alert messages may utilize an appropriatenetwork protocol (e.g., WI-FI, BLUETOOTH) based on the respectivecapabilities of the notification devices.

At stage 350, the central controller 60 sends an alert message to thenotification device, wherein the alert message includes an indication ofat least one notification preference and the alerting device. Thecentral controller 60 may utilize network transport protocols associatedwith the devices on the system 10 to provide an alert message containinginformation associated with the attribute and preference valuesdetermined at stage 346. If more than one notification device isdetermined at stage 348, the central controller 60 may send alertmessages based on the location of the user (e.g., to the closestdevice), in an order based on a preference value (e.g., priority), basedon the capabilities of the device (e.g., display/audio), or combinationsthereof. The alert message includes an indication of the alertingdevice. For example, referring to FIG. 7B, if the alerting device is asump pump, the alert message will include information to enable thetelevision 114 (or other devices) to display a balloon feature such asthe triangle shape 172, with the notification text to indicate a ‘Sumppump Malfunction.’ The balloon feature may be based on a display stylepreference value 288 and the ‘sump pump’ text may be based on thenotification received at stage 342. The central controller 60 may alsoconfigure the alert message to be a pending-notification messageconfigured to activate a user specific icon on a device such that theicon shape is based on the alerting device (e.g., home appliances havetriangle icons, received messages have envelop icons, medical alertshave red-cross icons, etc.).

Referring to FIG. 13B, with further reference to FIGS. 1-10C, a method360 of receiving an alert message with a notification preferenceincludes the stages shown. The method 360 is, however, an example onlyand not limiting. The method 360 can be altered, e.g., by having stagesadded, removed, rearranged, combined, performed concurrently, and/orhaving single stages split into multiple stages.

At stage 362, a device 70 receives an alert message including anindication of a user and an indication of at least one notificationpreference. The device 70 may receive the alert message from the centralcontroller 60 or another device in a network. The alert message may beincluded in network transport protocols associated with other thedevices in the network (e.g., WI-FI, BLUETOOTH) and may containinformation associated with the user from the attribute and preferencetables, 220, 270. For example, referring to FIGS. 4 and 7A, thetelevision 114 may receive an alert message for the user 130 that is tobe displayed in the first user notification area 158. The alert messagemay include an indication of the user identification 278 (e.g.,corresponding to the user 130) and an indication of the display areapreference 286. Other attributes and preferences values may be includedin the alert message. In another example, the networked speaker device112 may receive an alert message indicating a notification for thespouse 132 (i.e., the indication of the user) that should be presentedas a speaking message via a text-to-speech process (i.e., the onenotification preference). Other notification preferences for otherdevices may also be used.

At stage 364, the device 70 presents the alert message based on theindication of the user and the indication of the at least onenotification preference. Continuing the examples from above, thetelevision 114 may display a notification based on the alert message inthe designated user notification area (e.g., the first user notificationarea 158). The television 114 may include additional rules orconstraints based on the received attributes and preferences. Forexample, the television 114 may utilize the indication of the user toexecute a routine to determine if there are any other individuals in thefamily room 104 and then not display the notification if otherindividuals are present. That is, the user 130 may have enabled apreference on the television 114 to hide all messages if others arepresent in the family room 104. In this example, the television maydisplay a pending-notification icon associated with the indication ofthe user in the icon display area 157 rather than present thenotification in the first user notification area 158. A networkedspeaker device 112 such as the Amazon ECHO may be configured to utilizethe indication of the user to announce the user's name when the alertmessage is received. The notification preference in the alert messagemay configure the networked speaker device 112 to ask for the user'sverbal consent before presenting a text-to-speech version of the alertmessage. Other device configurations and capabilities may be activatedbased on the content of the received alert message.

Other examples and implementations are within the scope and spirit ofthe disclosure and appended claims. For example, due to the nature ofsoftware and computers, functions described above can be implementedusing software executed by a processor, hardware, firmware, hardwiring,or a combination of any of these. Features implementing functions mayalso be physically located at various positions, including beingdistributed such that portions of functions are implemented at differentphysical locations.

As used herein, an indication that a device is configured to perform astated function means that the device contains appropriate equipment(e.g., circuitry, mechanical device(s), hardware, software (e.g.,processor-readable instructions), firmware, etc.) to perform the statedfunction. That is, the device contains equipment that is capable ofperforming the stated function, e.g., with the device itself having beendesigned and made to perform the function, or having been manufacturedsuch that the device includes equipment that was designed and made toperform the function. An indication that processor-readable instructionsare configured to cause a processor to perform functions means that theprocessor-readable instructions contain instructions that when executedby a processor (after compiling as appropriate) will result in thefunctions being performed.

Also, as used herein, “or” as used in a list of items prefaced by “atleast one of” or prefaced by “one or more of” indicates a disjunctivelist such that, for example, a list of “at least one of A, B, or C,” ora list of “one or more of A, B, or C” means A or B or C or AB or AC orBC or ABC (i.e., A and B and C), or combinations with more than onefeature (e.g., AA, AAB, ABBC, etc.).

As used herein, unless otherwise stated, a statement that a function oroperation is “based on” an item or condition means that the function oroperation is based on the stated item or condition and may be based onone or more items and/or conditions in addition to the stated item orcondition.

Further, an indication that information is sent or transmitted, or astatement of sending or transmitting information, “to” an entity doesnot require completion of the communication. Such indications orstatements include situations where the information is conveyed from asending entity but does not reach an intended recipient of theinformation. The intended recipient, even if not actually receiving theinformation, may still be referred to as a receiving entity, e.g., areceiving execution environment. Further, an entity that is configuredto send or transmit information “to” an intended recipient is notrequired to be configured to complete the delivery of the information tothe intended recipient. For example, the entity may provide theinformation, with an indication of the intended recipient, to anotherentity that is capable of forwarding the information along with anindication of the intended recipient.

A wireless communication system is one in which communications areconveyed wirelessly, i.e., by electromagnetic and/or acoustic wavespropagating through atmospheric space rather than through a wire orother physical connection. A wireless communication network may not haveall communications transmitted wirelessly, but is configured to have atleast some communications transmitted wirelessly. Further, a wirelesscommunication device may communicate through one or more wiredconnections as well as through one or more wireless connections.

Substantial variations may be made in accordance with specificrequirements. For example, customized hardware might also be used,and/or particular elements might be implemented in hardware, software(including portable software, such as applets, etc.), or both. Further,connection to other computing devices such as network input/outputdevices may be employed.

The terms “machine-readable medium” and “computer-readable medium,” asused herein, refer to any medium that participates in providing datathat causes a machine to operate in a specific fashion. Using a computersystem, various computer-readable media might be involved in providinginstructions/code to processor(s) for execution and/or might be used tostore and/or carry such instructions/code (e.g., as signals). In manyimplementations, a computer-readable medium is a physical and/ortangible storage medium. Such a medium may take many forms, includingbut not limited to, non-volatile media and volatile media. Non-volatilemedia include, for example, optical and/or magnetic disks. Volatilemedia include, without limitation, dynamic memory.

Common forms of physical and/or tangible computer-readable mediainclude, for example, a floppy disk, a flexible disk, hard disk,magnetic tape, or any other magnetic medium, a CD-ROM, any other opticalmedium, punchcards, papertape, any other physical medium with patternsof holes, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip orcartridge, a carrier wave as described hereinafter, or any other mediumfrom which a computer can read instructions and/or code.

Various forms of computer-readable media may be involved in carrying oneor more sequences of one or more instructions to one or more processorsfor execution. Merely by way of example, the instructions may initiallybe carried on a magnetic disk and/or optical disc of a remote computer.A remote computer might load the instructions into its dynamic memoryand send the instructions as signals over a transmission medium to bereceived and/or executed by a computer system.

The methods, systems, and devices discussed above are examples. Variousconfigurations may omit, substitute, or add various procedures orcomponents as appropriate. For instance, in alternative configurations,the methods may be performed in an order different from that described,and that various steps may be added, omitted, or combined. Also,features described with respect to certain configurations may becombined in various other configurations. Different aspects and elementsof the configurations may be combined in a similar manner. Also,technology evolves and, thus, many of the elements are examples and donot limit the scope of the disclosure or claims.

Specific details are given in the description to provide a thoroughunderstanding of example configurations (including implementations).However, configurations may be practiced without these specific details.For example, well-known circuits, processes, algorithms, structures, andtechniques have been shown without unnecessary detail in order to avoidobscuring the configurations. This description provides exampleconfigurations only, and does not limit the scope, applicability, orconfigurations of the claims. Rather, the preceding description of theconfigurations provides a description for implementing describedtechniques. Various changes may be made in the function and arrangementof elements without departing from the spirit or scope of thedisclosure.

Also, configurations may be described as a process which is depicted asa flow diagram or block diagram. Although each may describe theoperations as a sequential process, many of the operations can beperformed in parallel or concurrently. In addition, the order of theoperations may be rearranged. A process may have additional stages orfunctions not included in the figure. Furthermore, examples of themethods may be implemented by hardware, software, firmware, middleware,microcode, hardware description languages, or any combination thereof.When implemented in software, firmware, middleware, or microcode, theprogram code or code segments to perform the tasks may be stored in anon-transitory computer-readable medium such as a storage medium.Processors may perform the described tasks.

Components, functional or otherwise, shown in the figures and/ordiscussed herein as being connected or communicating with each other arecommunicatively coupled. That is, they may be directly or indirectlyconnected to enable communication between them.

Having described several example configurations, various modifications,alternative constructions, and equivalents may be used without departingfrom the spirit of the disclosure. For example, the above elements maybe components of a larger system, wherein other rules may takeprecedence over or otherwise modify the application of the invention.Also, a number of operations may be undertaken before, during, or afterthe above elements are considered. Accordingly, the above descriptiondoes not bound the scope of the claims.

Further, more than one invention may be disclosed.

1. A method of sending an alert message, comprising: receiving, at acommunication device, a notification message for a user; determining, bythe communication device, a location of the user; determining, by thecommunication device, one or more notification devices based on thelocation of the user; generating, by the communication device, the alertmessage based on one or more notification preferences associated withthe user and the one or more notification devices; and sending, by thecommunication device, the alert message to at least one of the one ormore notification devices based on the one or more notificationpreferences.
 2. The method of claim 1 wherein the alert message includesan indication of the one or more notification preferences.
 3. The methodof claim 1 wherein the communication device is a central controller. 4.The method of claim 3 wherein determining the location of the userincludes providing a user identification associated with the user to thecentral controller and receiving an indication of the location of theuser from the central controller.
 5. The method of claim 1 wherein theat least one of the one or more notification devices is configured toreceive the alert message from a second notification device.
 6. Themethod of claim 1 wherein the alert message is a pending-notificationmessage including information configured to enable the at least one ofthe one or more notification devices to display an icon associated withthe user.
 7. The method of claim 1 wherein determining the location ofthe user includes executing a user search function.
 8. The method ofclaim 1 wherein determining the location of the user includes obtainingan image with a camera on at least one of the one or more notificationdevices.
 9. A device for providing an alert message to a user,comprising: at least one processor configured to: receive a notificationfor the user; determine a location of the user; determine one or morenotification devices based on the location of the user; determine one ormore notification preferences associated with the user and the one ormore notification devices; generate the alert message for at least oneof the one or more notification devices based on the one or morenotification preferences; and a transceiver, communicatively coupled tothe at least one processor, configured to transmit the alert messagewirelessly from the device.
 10. The device of claim 9 wherein the one ormore notification preferences includes a privacy preference indicatingconditions in which a receiving notification device that receives thealert message may present the alert message.
 11. The device of claim 9wherein the one or more notification preferences includes a display areapreference indicating an area on a display in which a receivingnotification device that receives the alert message will present thealert message.
 12. The device of claim 9 wherein the one or morenotification preferences includes a volume level preference indicating avolume in which a receiving notification device that receives the alertmessage will present the alert message.
 13. The device of claim 9wherein the alert message is a pending-notification message includinginformation configured to enable the at least one of the one or morenotification devices to display an icon associated with the user. 14.The device of claim 9 wherein the at least one processor is configuredto receive information from at least one presence sensor and determinethe location of the user based at least in part on the informationreceived from the at least one presence sensor.
 15. The device of claim9 wherein the at least one processor is configured to receive anindication of the location of the user from the one or more notificationdevices.
 16. An apparatus for sending an alert message, comprising:means for receiving a notification message for a user; means fordetermining a location of the user; means for determining one or morenotification devices based on the location of the user; means forgenerating the alert message based on one or more notificationpreferences associated with the user and the one or more notificationdevices; and means for sending the alert message to at least one of theone or more notification devices based on the one or more notificationpreferences.
 17. The apparatus of claim 16 wherein the alert messageincludes an indication of the one or more notification preferences. 18.The apparatus of claim 16 further comprising a central control means forreceiving the notification message and sending the alert message. 19.The apparatus of claim 16 wherein the means for determining the locationof the user includes a means for sending a user identificationassociated with the user to a central controller and a means forreceiving an indication of the location of the user from the centralcontroller.
 20. The apparatus of claim 16 wherein the at least one ofthe one or more notification devices is configured to receive the alertmessage from a second notification device.
 21. The apparatus of claim 16wherein the alert message is a pending-notification message includinginformation configured to enable the at least one of the one or morenotification devices to display an icon associated with the user. 22.The apparatus of claim 16 wherein the means determining the location ofthe user includes a means for receiving an input from at least onepresence sensor.
 23. The apparatus of claim 16 wherein the means fordetermining the location of the user includes a means for obtaining animage with a camera on at least one of the one or more notificationdevices.
 24. A non-transitory processor-readable storage mediumcomprising processor-readable instructions configured to cause one ormore processors to send an alert message, comprising: code for receivinga notification message for a user; code for determining a location ofthe user; code for determining one or more notification devices based onthe location of the user; code for generating the alert message based onone or more notification preferences associated with the user and theone or more notification devices; and code for sending the alert messageto at least one of the one or more notification devices based on the oneor more notification preferences.
 25. The storage medium of claim 24wherein the alert message includes an indication of the one or morenotification preferences.
 26. The storage medium of claim 24 furthercomprising code for sending the notification message to a centralcontroller, and code for sending the alert message from the centralcontroller.
 27. The storage medium of claim 24 wherein the code fordetermining the location of the user includes code for providing a useridentification associated with the user to a central controller and codefor receiving an indication of the location of the user from the centralcontroller.
 28. The storage medium of claim 24 wherein the at least oneof the one or more notification devices includes code for receiving thealert message from a second notification device.
 29. The storage mediumof claim 24 wherein the alert message is a pending-notification messageincluding information configured to enable the at least one of the oneor more notification devices to display an icon associated with theuser.
 30. The storage medium of claim 24 wherein the code fordetermining the location of the user includes code for receiving aninput from at least one presence sensor.